The ggCheysson package brings the graphical styles of
the Albums de Statistique Graphique to R and ggplot2.
The Albums were produced by the Ministry of Public Works in France under the direction of Émile Cheysson from 1879-1897. They represent the “pinnacle of the Golden Age of Statistical Graphics” (Friendly, 2008) for their innovation in visualization techniques, graphic design and beauty.
The package is based on work by:
This package provides a complete aesthetic system for creating visualizations in Cheysson’s distinctive style:
1880_07,
1881_03)theme_cheysson() - Full period-appropriate themetheme_cheysson_minimal() - Minimal grid varianttheme_cheysson_map() - Optimized for cartographic
workInstall the development version from GitHub:
For full functionality, install these packages:
library(ggplot2)
library(ggCheysson)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
geom_point(size = 3) +
scale_color_cheysson("1881_04") +
labs(title = "Iris Dataset") +
theme_minimal()# Load Cheysson fonts (once per session)
load_cheysson_fonts()
ggplot(mtcars, aes(wt, mpg, color = factor(cyl))) +
geom_point(size = 3) +
scale_color_cheysson("1883_04") +
labs(
title = "Automobile Efficiency",
subtitle = "Weight vs Fuel Economy",
x = "Weight (1000 lbs)",
y = "Miles per Gallon"
) +
theme_cheysson()library(ggpattern)
data <- data.frame(
category = LETTERS[1:4],
value = c(15, 23, 18, 20)
)
ggplot(data, aes(category, value, fill = category)) +
geom_col_pattern(
aes(
pattern_type = category,
pattern_fill = category,
pattern_angle = category
),
pattern = "stripe",
pattern_density = 0.35,
color = "black"
) +
scale_fill_cheysson_pattern("1881_03") +
scale_pattern_fill_cheysson("1881_03") +
scale_pattern_type_cheysson("1881_03") +
scale_pattern_angle_cheysson("1881_03") +
labs(
title = "Statistical Comparison",
x = "Category",
y = "Value"
) +
theme_cheysson() +
theme(legend.position = "none")View all available palettes:
# List all palettes
list_cheysson_pals()
#> name type album plate n_colors
#> 1 1880_07 category 1880 7 7
#> 2 1881_03 sequential 1881 3 1
#> 3 1881_04 category 1881 4 4
#> 4 1881_08 grouped 1881 8 5
#> 5 1882_04 grouped 1882 4 2
#> 6 1883_04 diverging 1883 4 2
#> 7 1883_06 category 1883 6 4
#> 8 1883_07 diverging 1883 7 3
#> 9 1886_04 sequential 1886 4 2
#> 10 1886_07 category 1886 7 3
#> 11 1886_08 grouped 1886 8 4
#> 12 1887_06 grouped 1887 6 2
#> 13 1888_05 sequential 1888 5 1
#> 14 1891_03 grouped 1891 3 2
#> 15 1891_06 sequential 1891 6 1
#> 16 1891_07 sequential 1891 7 2
#> 17 1895_04 sequential 1895 4 3
#> 18 1900_06 sequential 1900 6 2
#> 19 1906_04 category 1906 4 4
#> 20 1906_06 category 1906 6 6
# List by type
list_cheysson_pals("sequential")
#> name type album plate n_colors
#> 1 1881_03 sequential 1881 3 1
#> 2 1886_04 sequential 1886 4 2
#> 3 1888_05 sequential 1888 5 1
#> 4 1891_06 sequential 1891 6 1
#> 5 1891_07 sequential 1891 7 2
#> 6 1895_04 sequential 1895 4 3
#> 7 1900_06 sequential 1900 6 2# View palette colors
cheysson_pal("1880_07")
#> [1] "#d9636c" "#869e80" "#dec367" "#85aab1" "#aea9a4" "#ed8238" "#ab90a4"Palette types: - Sequential (7 palettes): For ordered quantitative data - Diverging (2 palettes): For data with neutral midpoint - Grouped (5 palettes): For comparing related groups - Category (6 palettes): For categorical data
With ggpattern, recreate the distinctive hatching styles:
# List available pattern palettes
list_cheysson_patterns()
# Get pattern specifications
patterns <- cheysson_pattern("1881_03")
# Use in plots with pattern scales
scale_pattern_fill_cheysson("1881_03")
scale_pattern_type_cheysson("1881_03")
scale_pattern_angle_cheysson("1881_03")Five authentic font families are included:
| Family | Description | Use |
|---|---|---|
Cheysson |
Regular serif | Body text, labels |
CheyssonItalic |
Italic variant | Emphasis |
CheyssonSansCaps |
Sans capitals | Axis titles |
CheyssonOutlineCaps |
Outlined caps | Decorative titles |
CheyssonTitle |
Display font | Main titles |
# Load fonts
load_cheysson_fonts()
# List available fonts
list_cheysson_fonts()
# Use specific fonts
theme(
plot.title = element_text(family = "CheyssonTitle"),
axis.title = element_text(family = "CheyssonSansCaps"),
axis.text = element_text(family = "Cheysson")
)cheysson_palettes - Color palette specifications (20
palettes)cheysson_patterns - Pattern/hatching specifications (83
patterns)albumImages - Metadata linking palettes to original
album platescheysson_pal() - Get colors from a palettescale_color_cheysson() /
scale_fill_cheysson() - ggplot2 color scaleslist_cheysson_pals() - List available palettescheysson_pattern() - Get pattern specificationsscale_pattern_*_cheysson() - ggpattern scales for
fills, types, angles, densitieslist_cheysson_patterns() - List available pattern
palettesload_cheysson_fonts() - Load font familiescheysson_font() - Get font family nameslist_cheysson_fonts() - View font informationcheysson_fonts_available() - Check font
availabilitytheme_cheysson() - Complete Cheysson themetheme_cheysson_minimal() - Minimal varianttheme_cheysson_map() - For mapsThe Albums de Statistique Graphique were published annually by France’s Ministry of Public Works, showcasing infrastructure statistics through innovative visualizations. Under Émile Cheysson’s direction, these albums combined:
This package preserves these design elements for modern statistical graphics.
David Rumsey Map Collection: Complete digitized Albums de Statistique Graphique View collection
RJ Andrews: SVG pattern extraction and digitization Classic Map Color Design | GitHub
Tom Shanley: Observable implementation Cheysson Color Palettes
Original maps from the Albums showing the variety of colors and patterns
Extracted color palettes by RJ Andrews
This package is under active development. Current features are stable and tested, but the API may evolve. Feedback and contributions are welcome!
GPL (>= 3)
To cite the original Albums de Statistique Graphique:
France. Ministère des travaux publics. Album de statistique graphique de [year]. Paris: Imprimerie nationale, [1879-1897].
Friendly, M. (2008). The Golden Age of Statistical Graphics. Statistical Science, 23(4), 502–535. https://doi.org/10.1214/08-STS268